package io;

// 文本文件写入： PrintWriter来简化开发

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

public class Demo12 {
    public static void main(String[] args) throws IOException {
        // 为了保证最后的文件关闭close能够执行到

        /* ① 那就加try..finally！！
        OutputStream outputStream = null;
        try {
            //c 创建一个输出实例（写入）
            outputStream = new FileOutputStream("./dest.txt");

            // 使用PrintWriter进行写入
            PrintWriter printWriter = new PrintWriter(outputStream);

            printWriter.println();
            printWriter.printf("a=%d\n",10);  // 格式化写入
        } finally {
            // 关闭文件流
            outputStream.close();
        }*/

        // ② ②使用 try with resources：把要关闭的对象写到try()中，
        // 当try结束后就会自动调用到对应对象的close方法！而且支持一个()中放多个对象，
        // 多个对象的创建之间使用分号;进行分割就ok了。
        // 直接在括号中new实例对象！！
        try(OutputStream outputStream = new FileOutputStream("./dest.txt");) {

            // 使用PrintWriter进行写入
            PrintWriter printWriter = new PrintWriter(outputStream);

            printWriter.println();
            printWriter.printf("a=%d\n",10);  // 格式化写入
        }


        // 其实这里的close并不是100%能够执行到的：
        // 如果前面的代码抛出异常，那么后面的close就执行不到了！
    }
}
